Run-Time Composite Authorization Definitions

SoftwareShield System Feature Guide > Authorization Definitions > Authorization Definition Types > Run-Time Composite Authorization Definitions

## Run-Time Composite Authorization Definitions

A Run-Time Composite Authorization Definition is a special Authorization Definition that effectively allows you to activate numerous other Authorization Definitions all at once by using a single Activation Code.

The Authorization Definitions that are contained inside the Run-Time Composite are collectively called a "payload". Individually, each one is called a "leaf" Authorization Definition. You can view the composite as a "tree" with only one level of branches, but an arbitrary number of them. Each branch, points to an individual leaf Authorization Definition. None of the leaf Authorization Definitions in the payload may use a parameter value (or it will be zero in the case of a General Use Authorization Definition).

You define the entire payload of a Run-Time Composite Authorization Definition at "run-time" (when you are generating the Activation Code). Although you can decide when you generate the Activation Code (run-time) what to include in the payload, there are limits to which codes can be included:

1. Payload leaves must be assigned an Authorization ID less than 16 (0-15 inclusive).

2. Payload leaves must not be any of the following types:

   - Change Expire Date (hard date)

   - Add Allowable Executions

   - Change Expire Period Duration

   - Run-Time Composite

The Manual-Activator will enforce the above rules.

If you must generate an Activation Code for a Run-Time Composite using the Web-Activator, the parameter value passed in the URL string (after the *P* delimiter) is a 16-bit numeric bit-field in decimal. You must construct it such that the least significant bit corresponds to Authorization ID #0, the next bit to Authorization ID #1 etc. - up to 15. EG: 47 (equal to 101111 in binary) corresponds to including in the payload Authorizations corresponding to IDs # 0, 1, 2, 3 and 5. Warning: Indicating a value to the Web-Activator which includes a bit that corresponds to an Authorization Definition that does not exist in the license or is a prohibited type (see above) will produce undefined results.

In the case of a General Use Authorization Definition which is included in the payload, if it uses a parameter, the activated parameter value will be automatically set to zero (0).

When activated, each of the leaf definitions is immediately and individually activated (in Auth ID order).

The Activation Code that is generated for a Run-Time Composite Authorization Definition does give you the option of using a shelf-life. The resulting Activation Code must be used within the shelf-life after the date it has been issued, or the code itself will expire and will cease to work. Note you can override the shelf-life you defined when you created the license at the time you generate an Activation Code with the Manual-Activator.

The Activation Code that is generated for a Run-Time Composite Authorization Definition is a "single-use" code by default. If single-use is enabled, they can only be used once. However, note that you may reissue it to the same customer on another day, and the code will be different (due to the embedded shelf-life date) and therefore may be used by the customer. You have the option of turning off single-use when you define your license, but do not have the option of overriding it later.

Run-Time Composite Authorization Definitions do require a parameter to be sent (implicitly). This parameter is the payload itself and is described in detail above.

Run-Time Composite Authorization Definitions can not be used as a payload for either type of Composite Authorization Definitions.

### When To Use A Run-Time Composite Authorization Definition

Create a Run-Time Composite Authorization Definition if you have complex license activation logic, that you cannot pre-determine, which you wish to simplify for a user and your support staff. Use it when you need to do more than one basic activation operation with a single Activation Code but are unsure exactly what that combination of things is until run-time.

There are a large number of possibilities for how you might use a Run-Time Composite Authorization Definition, but the basic premise is the same for all of them: Use it when you want to do more than one thing with a single Activation Code, and you do not know until run-time what that combination of things is.

### More Information

If you already know at design-time what the combination of things is you want to do, yet still need to do more than one thing at once, it would be preferable to use a Design-Time Composite Authorization Definition.

For help in actually creating an Run-Time Composite Authorization Definition, please see Authorization Definition Dialog in the SoftwareShield License Manager Reference.

For help in actually creating the payload of the Run-Time Composite Authorization Definition, please see Creating Run-Time Composite Parameters in the SoftwareShield Manual-Activator Reference.